let socket = null;
const WebSocketPlugin = {
	install(Vue) {
		Vue.prototype.$socket = {
			connect(url) {
				if (socket) {
					console.warn('WebSocket 已经连接');
					return;
				}

				socket = new WebSocket(url);

				// 监听连接打开事件
				socket.onopen = () => {
					console.log('WebSocket 连接已打开');
				};

				// 监听消息事件
				socket.onmessage = (event) => {
					console.log('接收到消息:', event.data);
				};

				// 监听错误事件
				socket.onerror = (error) => {
					console.error('WebSocket 错误:', error);
				};

				// 监听连接关闭事件
				socket.onclose = () => {
					console.log('WebSocket 连接已关闭');
					socket = null;
				};
			},
			sendMessage(message) {
				if (socket && socket.readyState === WebSocket.OPEN) {
					socket.send(message);
					console.log('发送消息:', message);
				} else {
					console.error('WebSocket 尚未连接或已关闭');
				}
			},
			handleMessage(data) {
				console.log('收到消息:', data);

				if (data.type === 'response') {
					// 处理响应
					this.onResponse(data);
				} else if (data.type === 'error') {
					// 处理错误
					this.onError(data.error);
				}
			},
			onResponse(data) {
				// 可以在这里添加响应处理逻辑
				console.log('响应:', data);
			},

			onError(error) {
				console.error('错误:', error);
			},
			close() {
				if (socket) {
					socket.close();
					socket = null;
					console.log('WebSocket 连接已关闭');
				}
			}
		};
	}
};

export default WebSocketPlugin;